package com.zhy.generator.commons.base;

import org.springframework.beans.factory.annotation.Autowired;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 父级的服务层
 * @project: service
 * @date 2018/12/11
 */
public abstract class BaseService<T> implements Serializable {
    private static final long serialVersionUID = 318737998078552325L;

    @Autowired
    public BaseMapper<T> thisMapper;

    /**
     * 获取数量
     *
     * @param params
     * @return
     */
    public Long getAllCount(Map params) {
        //todo 存在sql注入风险
        Long count = thisMapper.getAllCount(params);
        return null != count ? count : 0;
    }

    /**
     * 获取多条信息
     *
     * @param params
     * @return
     */
    public List<T> getAll(Map params) {
        //todo 存在sql注入风险
        return thisMapper.getAll(params);
    }

    /**
     * 获取某个信息
     *
     * @param pkid
     * @return
     */
    public T getByPkid(Long pkid) {
        if (null == pkid || pkid < 1) {
            return null;
        }

        return thisMapper.getByPkid(pkid);
    }

    /**
     * 添加某个信息
     *
     * @param data
     * @return
     */
    public Long add(T data) {
        Long count = thisMapper.add(data);
        return null != count ? count : 0;
    }

    /**
     * 添加某个信息
     * @param data
     * @return
     */
    public Long addBySelective(T data){
        Long count = thisMapper.addBySelective(data);
        return null != count ? count : 0;
    }

    /**
     * 删除某个信息
     *
     * @param data
     * @return
     */
    public Long edit(T data) {
        return thisMapper.edit(data);
    }

    /**
     * 删除某个信息
     *
     * @param pkid
     * @return
     */
    public Long delByPkid(Long pkid) {
        if (null == pkid || pkid < 1) {
            return 0L;
        }

        Long count = thisMapper.delByPkId(pkid);
        return null != count ? count : 0;
    }
}
